package com.pearadmin.pro.modules.experiment.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.pearadmin.pro.common.web.base.page.PageResponse;
import com.pearadmin.pro.modules.experiment.entity.ExperimentInfo;
import com.pearadmin.pro.modules.experiment.entity.ExperimentInfoCount;
import com.pearadmin.pro.modules.experiment.entity.ExperimentInfoRequest;
import com.pearadmin.pro.modules.statistics.vo.StatisticsVO;
import com.pearadmin.pro.modules.sys.domain.SysConfig;
import com.pearadmin.pro.modules.sys.param.SysConfigRequest;

import java.util.List;
import java.util.Map;

public interface ExperimentService extends IService<ExperimentInfo> {


    List<ExperimentInfo> homeRecommendation();

    /**
     * 根据筛选条件查询实验列表
     * @author ZhouXingYun
     * @date 2022/6/15 17:01
     * @param param
     * @return java.util.List<com.pearadmin.pro.modules.experiment.entity.ExperimentInfo>
     */
    List<ExperimentInfo> screeningSimulationExperiments(Map<String, String> param);

    /**
     *  查询单个实验详情
     * @author ZhouXingYun
     * @date 2022/6/15 17:34
     * @param id
     * @return java.util.List<com.pearadmin.pro.modules.experiment.entity.ExperimentInfo>
     */
    ExperimentInfo detailsOfIndividualExperiments(String id);

    /**
     * 获取虚仿实验列表 (分页)
     *
     * @param request 查询参数
     *
     * @return {@link SysConfig}
     * */
    PageResponse<ExperimentInfo> page(ExperimentInfoRequest request);

    Boolean editCount(ExperimentInfoCount experimentInfoCount);

    int statistics();

    List<StatisticsVO> statisticsSeparate();

    List<StatisticsVO> statisticsVOS_side();
}
